<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>OpenMesh: OpenMesh::TriMeshT&lt; Kernel &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="logo_align.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="rwth_vci_rgb.jpg"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">OpenMesh
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('a02489.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="a02486.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">OpenMesh::TriMeshT&lt; Kernel &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Base type for a triangle mesh.  
 <a href="a02489.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="a00419_source.html">OpenMesh/Mesh/TriMeshT.hh</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for OpenMesh::TriMeshT&lt; Kernel &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="a02488.png" border="0" usemap="#OpenMesh_1_1TriMeshT_3_01Kernel_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="OpenMesh_1_1TriMeshT_3_01Kernel_01_4_inherit__map" id="OpenMesh_1_1TriMeshT_3_01Kernel_01_4_inherit__map">
<area shape="rect" id="node4" href="a02741.html" title="Triangle mesh based on the Kernel_OSG::ArrayKernelT. " alt="" coords="527,5,717,61"/>
<area shape="rect" id="node5" href="a02377.html" title="Triangle mesh based on the ArrayKernel. " alt="" coords="515,86,729,127"/>
<area shape="rect" id="node6" href="a02377.html" title="TriMesh_ArrayKernelT\l\&lt; CustomTraitsVec2i \&gt;" alt="" coords="543,151,701,193"/>
<area shape="rect" id="node2" href="a02389.html" title="Base type for a polygonal mesh. " alt="" coords="112,86,271,127"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for OpenMesh::TriMeshT&lt; Kernel &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="a02487.png" border="0" usemap="#OpenMesh_1_1TriMeshT_3_01Kernel_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="OpenMesh_1_1TriMeshT_3_01Kernel_01_4_coll__map" id="OpenMesh_1_1TriMeshT_3_01Kernel_01_4_coll__map">
<area shape="rect" id="node2" href="a02389.html" title="Base type for a polygonal mesh. " alt="" coords="5,80,164,121"/>
</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a9c100c0d3cd57f15cde3983d40479dfc"><td class="memItemLeft" align="right" valign="top"><a id="a9c100c0d3cd57f15cde3983d40479dfc"></a>
typedef <a class="el" href="a02489.html">TriMeshT</a>&lt; Kernel &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>This</b></td></tr>
<tr class="separator:a9c100c0d3cd57f15cde3983d40479dfc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af88176f1c8ee011e6810c2fee45b9867"><td class="memItemLeft" align="right" valign="top"><a id="af88176f1c8ee011e6810c2fee45b9867"></a>
typedef <a class="el" href="a02389.html">PolyMeshT</a>&lt; Kernel &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PolyMesh</b></td></tr>
<tr class="separator:af88176f1c8ee011e6810c2fee45b9867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5a18e7e6ecd7922b819fdba481aece9"><td class="memItemLeft" align="right" valign="top"><a id="ae5a18e7e6ecd7922b819fdba481aece9"></a>
typedef <a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">PolyMesh::Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Scalar</b></td></tr>
<tr class="separator:ae5a18e7e6ecd7922b819fdba481aece9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14a6d5d560a5ad227227293ea72506d8"><td class="memItemLeft" align="right" valign="top"><a id="a14a6d5d560a5ad227227293ea72506d8"></a>
typedef <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">PolyMesh::Point</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Point</b></td></tr>
<tr class="separator:a14a6d5d560a5ad227227293ea72506d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a1d5b56d622db8a228d52f3b6d4f988"><td class="memItemLeft" align="right" valign="top"><a id="a3a1d5b56d622db8a228d52f3b6d4f988"></a>
typedef <a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">PolyMesh::Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Normal</b></td></tr>
<tr class="separator:a3a1d5b56d622db8a228d52f3b6d4f988"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac83512505fbeec4bc2ce9e27f6524ead"><td class="memItemLeft" align="right" valign="top"><a id="ac83512505fbeec4bc2ce9e27f6524ead"></a>
typedef <a class="el" href="a02389.html#af0d8129bf1a819c468c6edcb13b5203b">PolyMesh::Color</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Color</b></td></tr>
<tr class="separator:ac83512505fbeec4bc2ce9e27f6524ead"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2af5da0570446c0994a22b0c59d8c46"><td class="memItemLeft" align="right" valign="top"><a id="ab2af5da0570446c0994a22b0c59d8c46"></a>
typedef <a class="el" href="a02389.html#af6526fbc3e7f3a1e98a5543b9563b021">PolyMesh::TexCoord1D</a>&#160;</td><td class="memItemRight" valign="bottom"><b>TexCoord1D</b></td></tr>
<tr class="separator:ab2af5da0570446c0994a22b0c59d8c46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48317ec39a58609066b3aae8a498ba9d"><td class="memItemLeft" align="right" valign="top"><a id="a48317ec39a58609066b3aae8a498ba9d"></a>
typedef <a class="el" href="a02389.html#a4ae59536e97b43444c4f1622c645ebaf">PolyMesh::TexCoord2D</a>&#160;</td><td class="memItemRight" valign="bottom"><b>TexCoord2D</b></td></tr>
<tr class="separator:a48317ec39a58609066b3aae8a498ba9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a706ffcd34ab624e621bf52db0740aaff"><td class="memItemLeft" align="right" valign="top"><a id="a706ffcd34ab624e621bf52db0740aaff"></a>
typedef <a class="el" href="a02389.html#a5ec24476d2513efe71ddd1255a2ca444">PolyMesh::TexCoord3D</a>&#160;</td><td class="memItemRight" valign="bottom"><b>TexCoord3D</b></td></tr>
<tr class="separator:a706ffcd34ab624e621bf52db0740aaff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5424dcc6bea33cfbf12d7e540e5559dc"><td class="memItemLeft" align="right" valign="top"><a id="a5424dcc6bea33cfbf12d7e540e5559dc"></a>
typedef <a class="el" href="a02389.html#a03e6fd1a2fc91d4144374fd28dfbecee">PolyMesh::Vertex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Vertex</b></td></tr>
<tr class="separator:a5424dcc6bea33cfbf12d7e540e5559dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad373f5831f42565decb4676ebe391260"><td class="memItemLeft" align="right" valign="top"><a id="ad373f5831f42565decb4676ebe391260"></a>
typedef <a class="el" href="a02389.html#a249b0c195a81eeab341f7f73089d157e">PolyMesh::Halfedge</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Halfedge</b></td></tr>
<tr class="separator:ad373f5831f42565decb4676ebe391260"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77a46486d2bc61b581f3109b54b20547"><td class="memItemLeft" align="right" valign="top"><a id="a77a46486d2bc61b581f3109b54b20547"></a>
typedef <a class="el" href="a02389.html#ab2ccdc42b7b25cf35915d3639fc461b2">PolyMesh::Edge</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Edge</b></td></tr>
<tr class="separator:a77a46486d2bc61b581f3109b54b20547"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c11e44b195699ba5a04300dc144e1a1"><td class="memItemLeft" align="right" valign="top"><a id="a9c11e44b195699ba5a04300dc144e1a1"></a>
typedef <a class="el" href="a02389.html#a71e1e8eaabeb24eca04237931b4bea26">PolyMesh::Face</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Face</b></td></tr>
<tr class="separator:a9c11e44b195699ba5a04300dc144e1a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1c3aaa72e7b91c783bb2eae3a1f2ea94"><td class="memItemLeft" align="right" valign="top"><a id="a1c3aaa72e7b91c783bb2eae3a1f2ea94"></a>
typedef <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">PolyMesh::VertexHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><b>VertexHandle</b></td></tr>
<tr class="separator:a1c3aaa72e7b91c783bb2eae3a1f2ea94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6d1bec87e4d2f873a62cc973ef59334"><td class="memItemLeft" align="right" valign="top"><a id="ae6d1bec87e4d2f873a62cc973ef59334"></a>
typedef PolyMesh::HalfedgeHandle&#160;</td><td class="memItemRight" valign="bottom"><b>HalfedgeHandle</b></td></tr>
<tr class="separator:ae6d1bec87e4d2f873a62cc973ef59334"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4ce9ca98ffbdd4c3ceb4b2dd4994d78"><td class="memItemLeft" align="right" valign="top"><a id="ad4ce9ca98ffbdd4c3ceb4b2dd4994d78"></a>
typedef PolyMesh::EdgeHandle&#160;</td><td class="memItemRight" valign="bottom"><b>EdgeHandle</b></td></tr>
<tr class="separator:ad4ce9ca98ffbdd4c3ceb4b2dd4994d78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40363bb1ef029386804cace3a977cba5"><td class="memItemLeft" align="right" valign="top"><a id="a40363bb1ef029386804cace3a977cba5"></a>
typedef PolyMesh::FaceHandle&#160;</td><td class="memItemRight" valign="bottom"><b>FaceHandle</b></td></tr>
<tr class="separator:a40363bb1ef029386804cace3a977cba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af68a43c302ddf7cd03afd3f15b1e418f"><td class="memItemLeft" align="right" valign="top"><a id="af68a43c302ddf7cd03afd3f15b1e418f"></a>
typedef PolyMesh::VertexIter&#160;</td><td class="memItemRight" valign="bottom"><b>VertexIter</b></td></tr>
<tr class="separator:af68a43c302ddf7cd03afd3f15b1e418f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af58eee90c98af8a65555aa5a06c3c58e"><td class="memItemLeft" align="right" valign="top"><a id="af58eee90c98af8a65555aa5a06c3c58e"></a>
typedef PolyMesh::ConstVertexIter&#160;</td><td class="memItemRight" valign="bottom"><b>ConstVertexIter</b></td></tr>
<tr class="separator:af58eee90c98af8a65555aa5a06c3c58e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1db69a2f5a77398242bcdc1d599ac0f"><td class="memItemLeft" align="right" valign="top"><a id="ad1db69a2f5a77398242bcdc1d599ac0f"></a>
typedef PolyMesh::EdgeIter&#160;</td><td class="memItemRight" valign="bottom"><b>EdgeIter</b></td></tr>
<tr class="separator:ad1db69a2f5a77398242bcdc1d599ac0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0449a37c41c890554836881796f2e27"><td class="memItemLeft" align="right" valign="top"><a id="ac0449a37c41c890554836881796f2e27"></a>
typedef PolyMesh::ConstEdgeIter&#160;</td><td class="memItemRight" valign="bottom"><b>ConstEdgeIter</b></td></tr>
<tr class="separator:ac0449a37c41c890554836881796f2e27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad85df069c548bf28cb2b8aee87c75945"><td class="memItemLeft" align="right" valign="top"><a id="ad85df069c548bf28cb2b8aee87c75945"></a>
typedef PolyMesh::FaceIter&#160;</td><td class="memItemRight" valign="bottom"><b>FaceIter</b></td></tr>
<tr class="separator:ad85df069c548bf28cb2b8aee87c75945"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f3aa52f1f630f16a77dd9c34e4afe05"><td class="memItemLeft" align="right" valign="top"><a id="a1f3aa52f1f630f16a77dd9c34e4afe05"></a>
typedef PolyMesh::ConstFaceIter&#160;</td><td class="memItemRight" valign="bottom"><b>ConstFaceIter</b></td></tr>
<tr class="separator:a1f3aa52f1f630f16a77dd9c34e4afe05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ea62f6576107df5ac1c5a9af670cd07"><td class="memItemLeft" align="right" valign="top"><a id="a7ea62f6576107df5ac1c5a9af670cd07"></a>
typedef <a class="el" href="a02389.html#adc7d422e2ce13141e8291f7d29f7ecef">PolyMesh::VertexVertexIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>VertexVertexIter</b></td></tr>
<tr class="separator:a7ea62f6576107df5ac1c5a9af670cd07"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad84e76b927f8f6da62b35bb0063877fc"><td class="memItemLeft" align="right" valign="top"><a id="ad84e76b927f8f6da62b35bb0063877fc"></a>
typedef <a class="el" href="a02389.html#a6549eda743520c8a7aa3dfe6a37b2468">PolyMesh::VertexOHalfedgeIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>VertexOHalfedgeIter</b></td></tr>
<tr class="separator:ad84e76b927f8f6da62b35bb0063877fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ddf8f2f64228231e89283b357a7dea8"><td class="memItemLeft" align="right" valign="top"><a id="a7ddf8f2f64228231e89283b357a7dea8"></a>
typedef <a class="el" href="a02389.html#a437621f3901a93d0ebf8cdceac8e2939">PolyMesh::VertexIHalfedgeIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>VertexIHalfedgeIter</b></td></tr>
<tr class="separator:a7ddf8f2f64228231e89283b357a7dea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48f959a6cebf70802b333858c3526ab5"><td class="memItemLeft" align="right" valign="top"><a id="a48f959a6cebf70802b333858c3526ab5"></a>
typedef <a class="el" href="a02389.html#a68dd0d2773f837cbfb525d7208dedde0">PolyMesh::VertexEdgeIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>VertexEdgeIter</b></td></tr>
<tr class="separator:a48f959a6cebf70802b333858c3526ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33cad613da1433a52da13a2f1f5d1ae1"><td class="memItemLeft" align="right" valign="top"><a id="a33cad613da1433a52da13a2f1f5d1ae1"></a>
typedef <a class="el" href="a02389.html#a1ebe8b94ca30db3af44c809ab3ee7247">PolyMesh::VertexFaceIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>VertexFaceIter</b></td></tr>
<tr class="separator:a33cad613da1433a52da13a2f1f5d1ae1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e249ad7d47c0fcb9a284168a36114d0"><td class="memItemLeft" align="right" valign="top"><a id="a4e249ad7d47c0fcb9a284168a36114d0"></a>
typedef <a class="el" href="a02389.html#a3c65ec045ac0126b3ea7264cee26aa1b">PolyMesh::FaceVertexIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>FaceVertexIter</b></td></tr>
<tr class="separator:a4e249ad7d47c0fcb9a284168a36114d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7bb54254319a2ddeca075f702fdb029"><td class="memItemLeft" align="right" valign="top"><a id="af7bb54254319a2ddeca075f702fdb029"></a>
typedef <a class="el" href="a02389.html#aeca99c6cd952038e80b37c848035af73">PolyMesh::FaceHalfedgeIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>FaceHalfedgeIter</b></td></tr>
<tr class="separator:af7bb54254319a2ddeca075f702fdb029"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a0d0ca83b1260bc77591bb9d5b27842"><td class="memItemLeft" align="right" valign="top"><a id="a8a0d0ca83b1260bc77591bb9d5b27842"></a>
typedef <a class="el" href="a02389.html#a04a30000943150f98db373a3317760af">PolyMesh::FaceEdgeIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>FaceEdgeIter</b></td></tr>
<tr class="separator:a8a0d0ca83b1260bc77591bb9d5b27842"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4df73bdf778afcabffa4d1ef7c4b9efc"><td class="memItemLeft" align="right" valign="top"><a id="a4df73bdf778afcabffa4d1ef7c4b9efc"></a>
typedef <a class="el" href="a02389.html#a98618ca3fd3eec347bb5b02410a5e1e6">PolyMesh::FaceFaceIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>FaceFaceIter</b></td></tr>
<tr class="separator:a4df73bdf778afcabffa4d1ef7c4b9efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3546ddb617f0bdadab9446d587d7b46"><td class="memItemLeft" align="right" valign="top"><a id="ad3546ddb617f0bdadab9446d587d7b46"></a>
typedef <a class="el" href="a02389.html#a17a73f876343905c8b37b947e9152ac8">PolyMesh::ConstVertexVertexIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ConstVertexVertexIter</b></td></tr>
<tr class="separator:ad3546ddb617f0bdadab9446d587d7b46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a243fa328c92868581def7a543ab0aeb6"><td class="memItemLeft" align="right" valign="top"><a id="a243fa328c92868581def7a543ab0aeb6"></a>
typedef <a class="el" href="a02389.html#acf4b52db4b0198a91a02c06003623bfb">PolyMesh::ConstVertexOHalfedgeIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ConstVertexOHalfedgeIter</b></td></tr>
<tr class="separator:a243fa328c92868581def7a543ab0aeb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f68492bab9b1523cd8c2e5999dd2b3a"><td class="memItemLeft" align="right" valign="top"><a id="a0f68492bab9b1523cd8c2e5999dd2b3a"></a>
typedef <a class="el" href="a02389.html#a7221db878118b37611454a13f1754a08">PolyMesh::ConstVertexIHalfedgeIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ConstVertexIHalfedgeIter</b></td></tr>
<tr class="separator:a0f68492bab9b1523cd8c2e5999dd2b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d70887d930f3010e15a3accb50fcd95"><td class="memItemLeft" align="right" valign="top"><a id="a6d70887d930f3010e15a3accb50fcd95"></a>
typedef <a class="el" href="a02389.html#a9ccd0ce4fff127b13eb80fafefda0d0a">PolyMesh::ConstVertexEdgeIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ConstVertexEdgeIter</b></td></tr>
<tr class="separator:a6d70887d930f3010e15a3accb50fcd95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96e8c8580ea0c951a6998dc52b3f5f51"><td class="memItemLeft" align="right" valign="top"><a id="a96e8c8580ea0c951a6998dc52b3f5f51"></a>
typedef <a class="el" href="a02389.html#a61167f0a130e599b909cc8629a6dca2a">PolyMesh::ConstVertexFaceIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ConstVertexFaceIter</b></td></tr>
<tr class="separator:a96e8c8580ea0c951a6998dc52b3f5f51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58190c14ce7f49afb8065f611bf7963f"><td class="memItemLeft" align="right" valign="top"><a id="a58190c14ce7f49afb8065f611bf7963f"></a>
typedef <a class="el" href="a02389.html#a23b20f8208bae0aa1b344cac48c1f635">PolyMesh::ConstFaceVertexIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ConstFaceVertexIter</b></td></tr>
<tr class="separator:a58190c14ce7f49afb8065f611bf7963f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0820fc6833fe65fc4391e57961132ca2"><td class="memItemLeft" align="right" valign="top"><a id="a0820fc6833fe65fc4391e57961132ca2"></a>
typedef <a class="el" href="a02389.html#a1b0729c26d7cf8f123c344a3b81d353c">PolyMesh::ConstFaceHalfedgeIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ConstFaceHalfedgeIter</b></td></tr>
<tr class="separator:a0820fc6833fe65fc4391e57961132ca2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf806d19316e7b8873bee8998e6020ea"><td class="memItemLeft" align="right" valign="top"><a id="adf806d19316e7b8873bee8998e6020ea"></a>
typedef <a class="el" href="a02389.html#a5e15960d27e6d40646260109f5910b5b">PolyMesh::ConstFaceEdgeIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ConstFaceEdgeIter</b></td></tr>
<tr class="separator:adf806d19316e7b8873bee8998e6020ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a861858082ceb9782ccd5669c5b18da62"><td class="memItemLeft" align="right" valign="top"><a id="a861858082ceb9782ccd5669c5b18da62"></a>
typedef <a class="el" href="a02389.html#af081cbe692a0563c1ce08735f4b3491e">PolyMesh::ConstFaceFaceIter</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ConstFaceFaceIter</b></td></tr>
<tr class="separator:a861858082ceb9782ccd5669c5b18da62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_a02389"><td colspan="2" onclick="javascript:toggleInherit('pub_types_a02389')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="a02389.html">OpenMesh::PolyMeshT&lt; Kernel &gt;</a></td></tr>
<tr class="memitem:aee8e212a032787407e4a543031840063 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="aee8e212a032787407e4a543031840063"></a>
typedef <a class="el" href="a02389.html">PolyMeshT</a>&lt; Kernel &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#aee8e212a032787407e4a543031840063">This</a></td></tr>
<tr class="memdesc:aee8e212a032787407e4a543031840063 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Self type. Used to specify iterators/circulators. <br /></td></tr>
<tr class="separator:aee8e212a032787407e4a543031840063 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fc18e13d70825938274e3faf7b55e01 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a0fc18e13d70825938274e3faf7b55e01"></a>
typedef Kernel::VertexHandle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a></td></tr>
<tr class="memdesc:a0fc18e13d70825938274e3faf7b55e01 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handle for referencing the corresponding item. <br /></td></tr>
<tr class="separator:a0fc18e13d70825938274e3faf7b55e01 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac364b18ba6ed17e4e6a6551787b2e2a3 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ac364b18ba6ed17e4e6a6551787b2e2a3"></a>
typedef Kernel::HalfedgeHandle&#160;</td><td class="memItemRight" valign="bottom"><b>HalfedgeHandle</b></td></tr>
<tr class="separator:ac364b18ba6ed17e4e6a6551787b2e2a3 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e3309b66b4cb3bf22b6229f20375ef2 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a1e3309b66b4cb3bf22b6229f20375ef2"></a>
typedef Kernel::EdgeHandle&#160;</td><td class="memItemRight" valign="bottom"><b>EdgeHandle</b></td></tr>
<tr class="separator:a1e3309b66b4cb3bf22b6229f20375ef2 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4c0e43573d85661542b22cb4f4a1d11 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ab4c0e43573d85661542b22cb4f4a1d11"></a>
typedef Kernel::FaceHandle&#160;</td><td class="memItemRight" valign="bottom"><b>FaceHandle</b></td></tr>
<tr class="separator:ab4c0e43573d85661542b22cb4f4a1d11 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb18d53e36e53e024c8506cd3c961096 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="afb18d53e36e53e024c8506cd3c961096"></a>
typedef Kernel::VertexIter&#160;</td><td class="memItemRight" valign="bottom"><b>VertexIter</b></td></tr>
<tr class="separator:afb18d53e36e53e024c8506cd3c961096 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae40d2dfe0d226e49d869481bbd40a911 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ae40d2dfe0d226e49d869481bbd40a911"></a>
typedef Kernel::HalfedgeIter&#160;</td><td class="memItemRight" valign="bottom"><b>HalfedgeIter</b></td></tr>
<tr class="separator:ae40d2dfe0d226e49d869481bbd40a911 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5250dba0f527b19bfa665a288b5d63d inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ac5250dba0f527b19bfa665a288b5d63d"></a>
typedef Kernel::EdgeIter&#160;</td><td class="memItemRight" valign="bottom"><b>EdgeIter</b></td></tr>
<tr class="separator:ac5250dba0f527b19bfa665a288b5d63d inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34402ff0bd674fbad2685df22eecde64 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a34402ff0bd674fbad2685df22eecde64"></a>
typedef Kernel::FaceIter&#160;</td><td class="memItemRight" valign="bottom"><b>FaceIter</b></td></tr>
<tr class="separator:a34402ff0bd674fbad2685df22eecde64 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbad7fb3cfb4bad77153b9a8530a402f inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="acbad7fb3cfb4bad77153b9a8530a402f"></a>
typedef Kernel::ConstVertexIter&#160;</td><td class="memItemRight" valign="bottom"><b>ConstVertexIter</b></td></tr>
<tr class="separator:acbad7fb3cfb4bad77153b9a8530a402f inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85c57baa38e7e3d07bd7f3c7f194b354 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a85c57baa38e7e3d07bd7f3c7f194b354"></a>
typedef Kernel::ConstHalfedgeIter&#160;</td><td class="memItemRight" valign="bottom"><b>ConstHalfedgeIter</b></td></tr>
<tr class="separator:a85c57baa38e7e3d07bd7f3c7f194b354 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca72b40b26d4c76dfaec5e4191bdaa31 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="aca72b40b26d4c76dfaec5e4191bdaa31"></a>
typedef Kernel::ConstEdgeIter&#160;</td><td class="memItemRight" valign="bottom"><b>ConstEdgeIter</b></td></tr>
<tr class="separator:aca72b40b26d4c76dfaec5e4191bdaa31 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a371650bb71152018ea1f3f570b465b inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a0a371650bb71152018ea1f3f570b465b"></a>
typedef Kernel::ConstFaceIter&#160;</td><td class="memItemRight" valign="bottom"><b>ConstFaceIter</b></td></tr>
<tr class="separator:a0a371650bb71152018ea1f3f570b465b inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15372f27edf521d8e9028e2abccae342 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a15372f27edf521d8e9028e2abccae342"></a>
typedef Kernel::Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a></td></tr>
<tr class="memdesc:a15372f27edf521d8e9028e2abccae342 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scalar type. <br /></td></tr>
<tr class="separator:a15372f27edf521d8e9028e2abccae342 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed10fb4dfb536b53a5e20c8f2442eadf inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="aed10fb4dfb536b53a5e20c8f2442eadf"></a>
typedef Kernel::Point&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a></td></tr>
<tr class="memdesc:aed10fb4dfb536b53a5e20c8f2442eadf inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Coordinate type. <br /></td></tr>
<tr class="separator:aed10fb4dfb536b53a5e20c8f2442eadf inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3570fd132d1ac589b380485cf59c9e0b inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a3570fd132d1ac589b380485cf59c9e0b"></a>
typedef Kernel::Normal&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a></td></tr>
<tr class="memdesc:a3570fd132d1ac589b380485cf59c9e0b inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normal type. <br /></td></tr>
<tr class="separator:a3570fd132d1ac589b380485cf59c9e0b inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0d8129bf1a819c468c6edcb13b5203b inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="af0d8129bf1a819c468c6edcb13b5203b"></a>
typedef Kernel::Color&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#af0d8129bf1a819c468c6edcb13b5203b">Color</a></td></tr>
<tr class="memdesc:af0d8129bf1a819c468c6edcb13b5203b inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Color type. <br /></td></tr>
<tr class="separator:af0d8129bf1a819c468c6edcb13b5203b inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6526fbc3e7f3a1e98a5543b9563b021 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="af6526fbc3e7f3a1e98a5543b9563b021"></a>
typedef Kernel::TexCoord1D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#af6526fbc3e7f3a1e98a5543b9563b021">TexCoord1D</a></td></tr>
<tr class="memdesc:af6526fbc3e7f3a1e98a5543b9563b021 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">TexCoord1D type. <br /></td></tr>
<tr class="separator:af6526fbc3e7f3a1e98a5543b9563b021 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ae59536e97b43444c4f1622c645ebaf inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a4ae59536e97b43444c4f1622c645ebaf"></a>
typedef Kernel::TexCoord2D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a4ae59536e97b43444c4f1622c645ebaf">TexCoord2D</a></td></tr>
<tr class="memdesc:a4ae59536e97b43444c4f1622c645ebaf inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">TexCoord2D type. <br /></td></tr>
<tr class="separator:a4ae59536e97b43444c4f1622c645ebaf inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ec24476d2513efe71ddd1255a2ca444 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a5ec24476d2513efe71ddd1255a2ca444"></a>
typedef Kernel::TexCoord3D&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a5ec24476d2513efe71ddd1255a2ca444">TexCoord3D</a></td></tr>
<tr class="memdesc:a5ec24476d2513efe71ddd1255a2ca444 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">TexCoord3D type. <br /></td></tr>
<tr class="separator:a5ec24476d2513efe71ddd1255a2ca444 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03e6fd1a2fc91d4144374fd28dfbecee inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a03e6fd1a2fc91d4144374fd28dfbecee"></a>
typedef Kernel::Vertex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a03e6fd1a2fc91d4144374fd28dfbecee">Vertex</a></td></tr>
<tr class="memdesc:a03e6fd1a2fc91d4144374fd28dfbecee inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vertex type. <br /></td></tr>
<tr class="separator:a03e6fd1a2fc91d4144374fd28dfbecee inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a249b0c195a81eeab341f7f73089d157e inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a249b0c195a81eeab341f7f73089d157e"></a>
typedef Kernel::Halfedge&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a249b0c195a81eeab341f7f73089d157e">Halfedge</a></td></tr>
<tr class="memdesc:a249b0c195a81eeab341f7f73089d157e inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Halfedge type. <br /></td></tr>
<tr class="separator:a249b0c195a81eeab341f7f73089d157e inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2ccdc42b7b25cf35915d3639fc461b2 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ab2ccdc42b7b25cf35915d3639fc461b2"></a>
typedef Kernel::Edge&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#ab2ccdc42b7b25cf35915d3639fc461b2">Edge</a></td></tr>
<tr class="memdesc:ab2ccdc42b7b25cf35915d3639fc461b2 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Edge type. <br /></td></tr>
<tr class="separator:ab2ccdc42b7b25cf35915d3639fc461b2 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71e1e8eaabeb24eca04237931b4bea26 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a71e1e8eaabeb24eca04237931b4bea26"></a>
typedef Kernel::Face&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a71e1e8eaabeb24eca04237931b4bea26">Face</a></td></tr>
<tr class="memdesc:a71e1e8eaabeb24eca04237931b4bea26 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Face type. <br /></td></tr>
<tr class="separator:a71e1e8eaabeb24eca04237931b4bea26 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc7d422e2ce13141e8291f7d29f7ecef inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="adc7d422e2ce13141e8291f7d29f7ecef"></a>
typedef Kernel::VertexVertexIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#adc7d422e2ce13141e8291f7d29f7ecef">VertexVertexIter</a></td></tr>
<tr class="memdesc:adc7d422e2ce13141e8291f7d29f7ecef inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:adc7d422e2ce13141e8291f7d29f7ecef inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6549eda743520c8a7aa3dfe6a37b2468 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a6549eda743520c8a7aa3dfe6a37b2468"></a>
typedef Kernel::VertexOHalfedgeIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a6549eda743520c8a7aa3dfe6a37b2468">VertexOHalfedgeIter</a></td></tr>
<tr class="memdesc:a6549eda743520c8a7aa3dfe6a37b2468 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a6549eda743520c8a7aa3dfe6a37b2468 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a437621f3901a93d0ebf8cdceac8e2939 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a437621f3901a93d0ebf8cdceac8e2939"></a>
typedef Kernel::VertexIHalfedgeIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a437621f3901a93d0ebf8cdceac8e2939">VertexIHalfedgeIter</a></td></tr>
<tr class="memdesc:a437621f3901a93d0ebf8cdceac8e2939 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a437621f3901a93d0ebf8cdceac8e2939 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68dd0d2773f837cbfb525d7208dedde0 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a68dd0d2773f837cbfb525d7208dedde0"></a>
typedef Kernel::VertexEdgeIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a68dd0d2773f837cbfb525d7208dedde0">VertexEdgeIter</a></td></tr>
<tr class="memdesc:a68dd0d2773f837cbfb525d7208dedde0 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a68dd0d2773f837cbfb525d7208dedde0 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ebe8b94ca30db3af44c809ab3ee7247 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a1ebe8b94ca30db3af44c809ab3ee7247"></a>
typedef Kernel::VertexFaceIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a1ebe8b94ca30db3af44c809ab3ee7247">VertexFaceIter</a></td></tr>
<tr class="memdesc:a1ebe8b94ca30db3af44c809ab3ee7247 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a1ebe8b94ca30db3af44c809ab3ee7247 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c65ec045ac0126b3ea7264cee26aa1b inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a3c65ec045ac0126b3ea7264cee26aa1b"></a>
typedef Kernel::FaceVertexIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a3c65ec045ac0126b3ea7264cee26aa1b">FaceVertexIter</a></td></tr>
<tr class="memdesc:a3c65ec045ac0126b3ea7264cee26aa1b inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a3c65ec045ac0126b3ea7264cee26aa1b inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeca99c6cd952038e80b37c848035af73 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="aeca99c6cd952038e80b37c848035af73"></a>
typedef Kernel::FaceHalfedgeIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#aeca99c6cd952038e80b37c848035af73">FaceHalfedgeIter</a></td></tr>
<tr class="memdesc:aeca99c6cd952038e80b37c848035af73 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:aeca99c6cd952038e80b37c848035af73 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04a30000943150f98db373a3317760af inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a04a30000943150f98db373a3317760af"></a>
typedef Kernel::FaceEdgeIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a04a30000943150f98db373a3317760af">FaceEdgeIter</a></td></tr>
<tr class="memdesc:a04a30000943150f98db373a3317760af inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a04a30000943150f98db373a3317760af inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98618ca3fd3eec347bb5b02410a5e1e6 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a98618ca3fd3eec347bb5b02410a5e1e6"></a>
typedef Kernel::FaceFaceIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a98618ca3fd3eec347bb5b02410a5e1e6">FaceFaceIter</a></td></tr>
<tr class="memdesc:a98618ca3fd3eec347bb5b02410a5e1e6 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a98618ca3fd3eec347bb5b02410a5e1e6 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17a73f876343905c8b37b947e9152ac8 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a17a73f876343905c8b37b947e9152ac8"></a>
typedef Kernel::ConstVertexVertexIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a17a73f876343905c8b37b947e9152ac8">ConstVertexVertexIter</a></td></tr>
<tr class="memdesc:a17a73f876343905c8b37b947e9152ac8 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a17a73f876343905c8b37b947e9152ac8 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf4b52db4b0198a91a02c06003623bfb inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="acf4b52db4b0198a91a02c06003623bfb"></a>
typedef Kernel::ConstVertexOHalfedgeIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#acf4b52db4b0198a91a02c06003623bfb">ConstVertexOHalfedgeIter</a></td></tr>
<tr class="memdesc:acf4b52db4b0198a91a02c06003623bfb inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:acf4b52db4b0198a91a02c06003623bfb inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7221db878118b37611454a13f1754a08 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a7221db878118b37611454a13f1754a08"></a>
typedef Kernel::ConstVertexIHalfedgeIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a7221db878118b37611454a13f1754a08">ConstVertexIHalfedgeIter</a></td></tr>
<tr class="memdesc:a7221db878118b37611454a13f1754a08 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a7221db878118b37611454a13f1754a08 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ccd0ce4fff127b13eb80fafefda0d0a inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a9ccd0ce4fff127b13eb80fafefda0d0a"></a>
typedef Kernel::ConstVertexEdgeIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a9ccd0ce4fff127b13eb80fafefda0d0a">ConstVertexEdgeIter</a></td></tr>
<tr class="memdesc:a9ccd0ce4fff127b13eb80fafefda0d0a inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a9ccd0ce4fff127b13eb80fafefda0d0a inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61167f0a130e599b909cc8629a6dca2a inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a61167f0a130e599b909cc8629a6dca2a"></a>
typedef Kernel::ConstVertexFaceIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a61167f0a130e599b909cc8629a6dca2a">ConstVertexFaceIter</a></td></tr>
<tr class="memdesc:a61167f0a130e599b909cc8629a6dca2a inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a61167f0a130e599b909cc8629a6dca2a inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23b20f8208bae0aa1b344cac48c1f635 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a23b20f8208bae0aa1b344cac48c1f635"></a>
typedef Kernel::ConstFaceVertexIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a23b20f8208bae0aa1b344cac48c1f635">ConstFaceVertexIter</a></td></tr>
<tr class="memdesc:a23b20f8208bae0aa1b344cac48c1f635 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a23b20f8208bae0aa1b344cac48c1f635 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b0729c26d7cf8f123c344a3b81d353c inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a1b0729c26d7cf8f123c344a3b81d353c"></a>
typedef Kernel::ConstFaceHalfedgeIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a1b0729c26d7cf8f123c344a3b81d353c">ConstFaceHalfedgeIter</a></td></tr>
<tr class="memdesc:a1b0729c26d7cf8f123c344a3b81d353c inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a1b0729c26d7cf8f123c344a3b81d353c inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e15960d27e6d40646260109f5910b5b inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a5e15960d27e6d40646260109f5910b5b"></a>
typedef Kernel::ConstFaceEdgeIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a5e15960d27e6d40646260109f5910b5b">ConstFaceEdgeIter</a></td></tr>
<tr class="memdesc:a5e15960d27e6d40646260109f5910b5b inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:a5e15960d27e6d40646260109f5910b5b inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af081cbe692a0563c1ce08735f4b3491e inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="af081cbe692a0563c1ce08735f4b3491e"></a>
typedef Kernel::ConstFaceFaceIter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#af081cbe692a0563c1ce08735f4b3491e">ConstFaceFaceIter</a></td></tr>
<tr class="memdesc:af081cbe692a0563c1ce08735f4b3491e inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Circulator. <br /></td></tr>
<tr class="separator:af081cbe692a0563c1ce08735f4b3491e inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d0ff00a35aa4b3ebfa554441def1334 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a5d0ff00a35aa4b3ebfa554441def1334"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>IsPolyMesh</b> = 1
 }<tr class="memdesc:a5d0ff00a35aa4b3ebfa554441def1334"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether this is a <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a> (This function does not check the per face vertex count! It only checks if the datatype is <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a>) <br /></td></tr>
</td></tr>
<tr class="separator:a5d0ff00a35aa4b3ebfa554441def1334 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab049a82d0fafc6b5e81936c8debc9952 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ab049a82d0fafc6b5e81936c8debc9952"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>IsTriMesh</b> = 0
 }<tr class="memdesc:ab049a82d0fafc6b5e81936c8debc9952"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether this is a <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a> (This function does not check the per face vertex count! It only checks if the datatype is <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a>) <br /></td></tr>
</td></tr>
<tr class="separator:ab049a82d0fafc6b5e81936c8debc9952 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac317b3cb6c4bbee869440ec859d49c81 inherit pub_types_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ac317b3cb6c4bbee869440ec859d49c81"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#ac317b3cb6c4bbee869440ec859d49c81">ConnectivityTag</a> = <a class="el" href="a02461.html">PolyConnectivityTag</a></td></tr>
<tr class="memdesc:ac317b3cb6c4bbee869440ec859d49c81 inherit pub_types_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether this is a <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a> (This function does not check the per face vertex count! It only checks if the datatype is <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a>) <br /></td></tr>
<tr class="separator:ac317b3cb6c4bbee869440ec859d49c81 inherit pub_types_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a13a27eb1994c2e288f404f5305834c3e"><td class="memItemLeft" align="right" valign="top"><a id="a13a27eb1994c2e288f404f5305834c3e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a13a27eb1994c2e288f404f5305834c3e">TriMeshT</a> ()</td></tr>
<tr class="memdesc:a13a27eb1994c2e288f404f5305834c3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:a13a27eb1994c2e288f404f5305834c3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a34d742281898db20105e23cb1819ee"><td class="memItemLeft" align="right" valign="top"><a id="a3a34d742281898db20105e23cb1819ee"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>TriMeshT</b> (<a class="el" href="a02389.html">PolyMesh</a> rhs)</td></tr>
<tr class="separator:a3a34d742281898db20105e23cb1819ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e84b7ff5a5dabd8136a1bbb72a54399"><td class="memItemLeft" align="right" valign="top"><a id="a9e84b7ff5a5dabd8136a1bbb72a54399"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a9e84b7ff5a5dabd8136a1bbb72a54399">~TriMeshT</a> ()</td></tr>
<tr class="memdesc:a9e84b7ff5a5dabd8136a1bbb72a54399"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a9e84b7ff5a5dabd8136a1bbb72a54399"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4868b772cb7a9d7bb8d94854dfb82868"><td class="memItemLeft" align="right" valign="top">HalfedgeHandle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a4868b772cb7a9d7bb8d94854dfb82868">vertex_split</a> (<a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> _v0_point, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _v1, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vl, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vr)</td></tr>
<tr class="memdesc:a4868b772cb7a9d7bb8d94854dfb82868"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vertex Split: inverse operation to collapse().  <a href="#a4868b772cb7a9d7bb8d94854dfb82868">More...</a><br /></td></tr>
<tr class="separator:a4868b772cb7a9d7bb8d94854dfb82868"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac58e0af86ecd0bbc5e821ecd8c8beaff"><td class="memItemLeft" align="right" valign="top">HalfedgeHandle&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#ac58e0af86ecd0bbc5e821ecd8c8beaff">vertex_split</a> (<a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _v0, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _v1, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vl, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vr)</td></tr>
<tr class="memdesc:ac58e0af86ecd0bbc5e821ecd8c8beaff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vertex Split: inverse operation to collapse().  <a href="#ac58e0af86ecd0bbc5e821ecd8c8beaff">More...</a><br /></td></tr>
<tr class="separator:ac58e0af86ecd0bbc5e821ecd8c8beaff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46de9085ad6cebce97204d3263c2fc02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02405.html">SmartVertexHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a46de9085ad6cebce97204d3263c2fc02">split</a> (EdgeHandle _eh, const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p)</td></tr>
<tr class="memdesc:a46de9085ad6cebce97204d3263c2fc02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Edge split (= 2-to-4 split)  <a href="#a46de9085ad6cebce97204d3263c2fc02">More...</a><br /></td></tr>
<tr class="separator:a46de9085ad6cebce97204d3263c2fc02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af27eab7f97150e60d70e43a96ba1e6a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02405.html">SmartVertexHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#af27eab7f97150e60d70e43a96ba1e6a4">split_copy</a> (EdgeHandle _eh, const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p)</td></tr>
<tr class="memdesc:af27eab7f97150e60d70e43a96ba1e6a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Edge split (= 2-to-4 split)  <a href="#af27eab7f97150e60d70e43a96ba1e6a4">More...</a><br /></td></tr>
<tr class="separator:af27eab7f97150e60d70e43a96ba1e6a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00a743cc15f3ff35e41c98090e0f91c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a00a743cc15f3ff35e41c98090e0f91c8">split</a> (EdgeHandle _eh, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh)</td></tr>
<tr class="memdesc:a00a743cc15f3ff35e41c98090e0f91c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Edge split (= 2-to-4 split)  <a href="#a00a743cc15f3ff35e41c98090e0f91c8">More...</a><br /></td></tr>
<tr class="separator:a00a743cc15f3ff35e41c98090e0f91c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1dcb76ca7b18678552bb0b65dff3a2c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#ae1dcb76ca7b18678552bb0b65dff3a2c">split_copy</a> (EdgeHandle _eh, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh)</td></tr>
<tr class="memdesc:ae1dcb76ca7b18678552bb0b65dff3a2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Edge split (= 2-to-4 split)  <a href="#ae1dcb76ca7b18678552bb0b65dff3a2c">More...</a><br /></td></tr>
<tr class="separator:ae1dcb76ca7b18678552bb0b65dff3a2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6eb3942a6c87da48e0691d669e764edf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02405.html">SmartVertexHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a6eb3942a6c87da48e0691d669e764edf">split</a> (FaceHandle _fh, const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p)</td></tr>
<tr class="memdesc:a6eb3942a6c87da48e0691d669e764edf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Face split (= 1-to-3 split, calls corresponding <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> function).  <a href="#a6eb3942a6c87da48e0691d669e764edf">More...</a><br /></td></tr>
<tr class="separator:a6eb3942a6c87da48e0691d669e764edf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab43c61825216c530da6959a1a027a9e1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02405.html">SmartVertexHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#ab43c61825216c530da6959a1a027a9e1">split_copy</a> (FaceHandle _fh, const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p)</td></tr>
<tr class="memdesc:ab43c61825216c530da6959a1a027a9e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Face split (= 1-to-3 split, calls corresponding <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> function).  <a href="#ab43c61825216c530da6959a1a027a9e1">More...</a><br /></td></tr>
<tr class="separator:ab43c61825216c530da6959a1a027a9e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08fd303acc36c2fc4e6bbb1e96b49dd7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a08fd303acc36c2fc4e6bbb1e96b49dd7">split</a> (FaceHandle _fh)</td></tr>
<tr class="memdesc:a08fd303acc36c2fc4e6bbb1e96b49dd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Face split (= 1-to-4) split, splits edges at midpoints and adds 4 new faces in the interior).  <a href="#a08fd303acc36c2fc4e6bbb1e96b49dd7">More...</a><br /></td></tr>
<tr class="separator:a08fd303acc36c2fc4e6bbb1e96b49dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d3163398fc453736b59e8a3dacf7e45"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a1d3163398fc453736b59e8a3dacf7e45">split</a> (FaceHandle _fh, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh)</td></tr>
<tr class="memdesc:a1d3163398fc453736b59e8a3dacf7e45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Face split (= 1-to-3 split, calls corresponding <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> function).  <a href="#a1d3163398fc453736b59e8a3dacf7e45">More...</a><br /></td></tr>
<tr class="separator:a1d3163398fc453736b59e8a3dacf7e45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2b78682dc013e4c8480a3cab28bb766"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#aa2b78682dc013e4c8480a3cab28bb766">split_copy</a> (FaceHandle _fh, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh)</td></tr>
<tr class="memdesc:aa2b78682dc013e4c8480a3cab28bb766"><td class="mdescLeft">&#160;</td><td class="mdescRight">Face split (= 1-to-3 split, calls corresponding <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> function).  <a href="#aa2b78682dc013e4c8480a3cab28bb766">More...</a><br /></td></tr>
<tr class="separator:aa2b78682dc013e4c8480a3cab28bb766"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68b11fc780cd30e73380843bc6769ed7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a68b11fc780cd30e73380843bc6769ed7">calc_face_area</a> (FaceHandle _fh) const</td></tr>
<tr class="memdesc:a68b11fc780cd30e73380843bc6769ed7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the area of a face.  <a href="#a68b11fc780cd30e73380843bc6769ed7">More...</a><br /></td></tr>
<tr class="separator:a68b11fc780cd30e73380843bc6769ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Normal vector computation</div></td></tr>
<tr class="memitem:a34d9ca17136124593dcc494cfaccdfe5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a34d9ca17136124593dcc494cfaccdfe5">calc_face_normal</a> (FaceHandle _fh) const</td></tr>
<tr class="memdesc:a34d9ca17136124593dcc494cfaccdfe5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate normal vector for face _fh (specialized for TriMesh).  <a href="#a34d9ca17136124593dcc494cfaccdfe5">More...</a><br /></td></tr>
<tr class="separator:a34d9ca17136124593dcc494cfaccdfe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_a02389"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_a02389')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="a02389.html">OpenMesh::PolyMeshT&lt; Kernel &gt;</a></td></tr>
<tr class="memitem:a4acbc73f0f0f4f55fd688b64a22a2a85 inherit pub_methods_a02389"><td class="memTemplParams" colspan="2"><a id="a4acbc73f0f0f4f55fd688b64a22a2a85"></a>
template&lt;typename T &gt; </td></tr>
<tr class="memitem:a4acbc73f0f0f4f55fd688b64a22a2a85 inherit pub_methods_a02389"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>PolyMeshT</b> (const T &amp;t)</td></tr>
<tr class="separator:a4acbc73f0f0f4f55fd688b64a22a2a85 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4021a6310529dac06a6969967a7d3986 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02405.html">SmartVertexHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a4021a6310529dac06a6969967a7d3986">new_vertex</a> ()</td></tr>
<tr class="memdesc:a4021a6310529dac06a6969967a7d3986 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Uses default copy and assignment operator.  <a href="a02389.html#a4021a6310529dac06a6969967a7d3986">More...</a><br /></td></tr>
<tr class="separator:a4021a6310529dac06a6969967a7d3986 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7458a95c0f4512e7e571edc18b1b839b inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02405.html">SmartVertexHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a7458a95c0f4512e7e571edc18b1b839b">new_vertex</a> (const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p)</td></tr>
<tr class="memdesc:a7458a95c0f4512e7e571edc18b1b839b inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a new vertex initialized to a custom position.  <a href="a02389.html#a7458a95c0f4512e7e571edc18b1b839b">More...</a><br /></td></tr>
<tr class="separator:a7458a95c0f4512e7e571edc18b1b839b inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae805ccd544a6b1e3b7c963e15eff7afd inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02405.html">SmartVertexHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#ae805ccd544a6b1e3b7c963e15eff7afd">new_vertex_dirty</a> (const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p)</td></tr>
<tr class="memdesc:ae805ccd544a6b1e3b7c963e15eff7afd inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="a02389.html#a7458a95c0f4512e7e571edc18b1b839b" title="Adds a new vertex initialized to a custom position. ">new_vertex(const Point&amp;)</a> but never shrinks, only enlarges the vertex property vectors.  <a href="a02389.html#ae805ccd544a6b1e3b7c963e15eff7afd">More...</a><br /></td></tr>
<tr class="separator:ae805ccd544a6b1e3b7c963e15eff7afd inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5338335bff53d9b88afc14634c456908 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a5338335bff53d9b88afc14634c456908"></a>
<a class="el" href="a02405.html">SmartVertexHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a5338335bff53d9b88afc14634c456908">add_vertex</a> (const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p)</td></tr>
<tr class="memdesc:a5338335bff53d9b88afc14634c456908 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for <a class="el" href="a02389.html#a7458a95c0f4512e7e571edc18b1b839b" title="Adds a new vertex initialized to a custom position. ">new_vertex(const Point&amp;)</a>. <br /></td></tr>
<tr class="separator:a5338335bff53d9b88afc14634c456908 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a138e4a22051ec38d4e9bb482c0e9bef9 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a138e4a22051ec38d4e9bb482c0e9bef9"></a>
<a class="el" href="a02405.html">SmartVertexHandle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a138e4a22051ec38d4e9bb482c0e9bef9">add_vertex_dirty</a> (const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p)</td></tr>
<tr class="memdesc:a138e4a22051ec38d4e9bb482c0e9bef9 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for <a class="el" href="a02389.html#ae805ccd544a6b1e3b7c963e15eff7afd" title="Same as new_vertex(const Point&amp;) but never shrinks, only enlarges the vertex property vectors...">new_vertex_dirty()</a>. <br /></td></tr>
<tr class="separator:a138e4a22051ec38d4e9bb482c0e9bef9 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae070e1f6f0df8885d85b48916e043b5 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="aae070e1f6f0df8885d85b48916e043b5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#aae070e1f6f0df8885d85b48916e043b5">calc_edge_vector</a> (EdgeHandle _eh, <a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a> &amp;_edge_vec) const</td></tr>
<tr class="memdesc:aae070e1f6f0df8885d85b48916e043b5 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the edge vector as the vector defined by the halfedge with id #0 (see below) <br /></td></tr>
<tr class="separator:aae070e1f6f0df8885d85b48916e043b5 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c41a7e7c5c21683e89128d526d224d6 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a9c41a7e7c5c21683e89128d526d224d6"></a>
<a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a9c41a7e7c5c21683e89128d526d224d6">calc_edge_vector</a> (EdgeHandle _eh) const</td></tr>
<tr class="memdesc:a9c41a7e7c5c21683e89128d526d224d6 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the edge vector as the vector defined by the halfedge with id #0 (see below) <br /></td></tr>
<tr class="separator:a9c41a7e7c5c21683e89128d526d224d6 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1898718c80e93e8579d30b61cfd29e83 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a1898718c80e93e8579d30b61cfd29e83"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a1898718c80e93e8579d30b61cfd29e83">calc_edge_vector</a> (HalfedgeHandle _heh, <a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a> &amp;_edge_vec) const</td></tr>
<tr class="memdesc:a1898718c80e93e8579d30b61cfd29e83 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the edge vector as the difference of the the points defined by to_vertex_handle() and from_vertex_handle() <br /></td></tr>
<tr class="separator:a1898718c80e93e8579d30b61cfd29e83 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6182b437be445cb682f25d105de4e13 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ad6182b437be445cb682f25d105de4e13"></a>
<a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#ad6182b437be445cb682f25d105de4e13">calc_edge_vector</a> (HalfedgeHandle _heh) const</td></tr>
<tr class="memdesc:ad6182b437be445cb682f25d105de4e13 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the edge vector as the difference of the the points defined by to_vertex_handle() and from_vertex_handle() <br /></td></tr>
<tr class="separator:ad6182b437be445cb682f25d105de4e13 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d170b57c860a510e4d430efc873f1a0 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a7d170b57c860a510e4d430efc873f1a0"></a>
<a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><b>calc_edge_length</b> (EdgeHandle _eh) const</td></tr>
<tr class="separator:a7d170b57c860a510e4d430efc873f1a0 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea5a895c076f3e8ce17a5b82df1b4752 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="aea5a895c076f3e8ce17a5b82df1b4752"></a>
<a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#aea5a895c076f3e8ce17a5b82df1b4752">calc_edge_length</a> (HalfedgeHandle _heh) const</td></tr>
<tr class="memdesc:aea5a895c076f3e8ce17a5b82df1b4752 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the length of the edge _heh. <br /></td></tr>
<tr class="separator:aea5a895c076f3e8ce17a5b82df1b4752 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada9e865f77dda5a394622a49f7b96563 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ada9e865f77dda5a394622a49f7b96563"></a>
<a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><b>calc_edge_sqr_length</b> (EdgeHandle _eh) const</td></tr>
<tr class="separator:ada9e865f77dda5a394622a49f7b96563 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9dd2e211b61a147b6e90ce4dbf616269 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a9dd2e211b61a147b6e90ce4dbf616269"></a>
<a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><b>calc_edge_sqr_length</b> (HalfedgeHandle _heh) const</td></tr>
<tr class="separator:a9dd2e211b61a147b6e90ce4dbf616269 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc46bbba1ed1b6b591f2d7747c05a586 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="adc46bbba1ed1b6b591f2d7747c05a586"></a>
<a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#adc46bbba1ed1b6b591f2d7747c05a586">calc_edge_midpoint</a> (HalfedgeHandle _heh) const</td></tr>
<tr class="memdesc:adc46bbba1ed1b6b591f2d7747c05a586 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the midpoint of the halfedge _heh, defined by the positions of the two incident vertices. <br /></td></tr>
<tr class="separator:adc46bbba1ed1b6b591f2d7747c05a586 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fdf02683a7d1055f8d88e179ea3fd3f inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a3fdf02683a7d1055f8d88e179ea3fd3f"></a>
<a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a3fdf02683a7d1055f8d88e179ea3fd3f">calc_edge_midpoint</a> (EdgeHandle _eh) const</td></tr>
<tr class="memdesc:a3fdf02683a7d1055f8d88e179ea3fd3f inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the midpoint of the edge _eh, defined by the positions of the two incident vertices. <br /></td></tr>
<tr class="separator:a3fdf02683a7d1055f8d88e179ea3fd3f inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77f37d03601248cddc2fd4b61f77fcb0 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a77f37d03601248cddc2fd4b61f77fcb0"></a>
<a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a77f37d03601248cddc2fd4b61f77fcb0">calc_normal</a> (EdgeHandle _eh) const</td></tr>
<tr class="memdesc:a77f37d03601248cddc2fd4b61f77fcb0 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculated and returns the average of the two vertex normals <br /></td></tr>
<tr class="separator:a77f37d03601248cddc2fd4b61f77fcb0 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96377dfb9dca48a0648b5c0698795e1a inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a96377dfb9dca48a0648b5c0698795e1a">calc_sector_vectors</a> (HalfedgeHandle _in_heh, <a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a> &amp;_vec0, <a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a> &amp;_vec1) const</td></tr>
<tr class="memdesc:a96377dfb9dca48a0648b5c0698795e1a inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">defines a consistent representation of a sector geometry: the halfedge _in_heh defines the sector orientation the vertex pointed by _in_heh defines the sector center _vec0 and _vec1 are resp.  <a href="a02389.html#a96377dfb9dca48a0648b5c0698795e1a">More...</a><br /></td></tr>
<tr class="separator:a96377dfb9dca48a0648b5c0698795e1a inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d3d49f23d5be7cebd2107a6363bcedd inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a5d3d49f23d5be7cebd2107a6363bcedd">calc_sector_angle</a> (HalfedgeHandle _in_heh) const</td></tr>
<tr class="memdesc:a5d3d49f23d5be7cebd2107a6363bcedd inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculates the sector angle.  <a href="a02389.html#a5d3d49f23d5be7cebd2107a6363bcedd">More...</a><br /></td></tr>
<tr class="separator:a5d3d49f23d5be7cebd2107a6363bcedd inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace85d620312f88395ae3b737f2abaece inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ace85d620312f88395ae3b737f2abaece"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#ace85d620312f88395ae3b737f2abaece">calc_sector_normal</a> (HalfedgeHandle _in_heh, <a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a> &amp;_sector_normal) const</td></tr>
<tr class="memdesc:ace85d620312f88395ae3b737f2abaece inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculates the normal (non-normalized) of the face sector defined by the angle &lt;(_in_heh,next_halfedge(_in_heh)) <br /></td></tr>
<tr class="separator:ace85d620312f88395ae3b737f2abaece inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4babf1e8370fcb01b07596819ac167dc inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a4babf1e8370fcb01b07596819ac167dc">calc_sector_area</a> (HalfedgeHandle _in_heh) const</td></tr>
<tr class="memdesc:a4babf1e8370fcb01b07596819ac167dc inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculates the area of the face sector defined by the angle &lt;(_in_heh,next_halfedge(_in_heh)) NOTE: special cases (e.g.  <a href="a02389.html#a4babf1e8370fcb01b07596819ac167dc">More...</a><br /></td></tr>
<tr class="separator:a4babf1e8370fcb01b07596819ac167dc inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe704b0dc13787fbc73913a39d168d53 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#afe704b0dc13787fbc73913a39d168d53">calc_dihedral_angle_fast</a> (HalfedgeHandle _heh) const</td></tr>
<tr class="memdesc:afe704b0dc13787fbc73913a39d168d53 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculates the dihedral angle on the halfedge _heh  <a href="a02389.html#afe704b0dc13787fbc73913a39d168d53">More...</a><br /></td></tr>
<tr class="separator:afe704b0dc13787fbc73913a39d168d53 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8cd3845b89840da203e1347f68516f2 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#ab8cd3845b89840da203e1347f68516f2">calc_dihedral_angle_fast</a> (EdgeHandle _eh) const</td></tr>
<tr class="memdesc:ab8cd3845b89840da203e1347f68516f2 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculates the dihedral angle on the edge _eh  <a href="a02389.html#ab8cd3845b89840da203e1347f68516f2">More...</a><br /></td></tr>
<tr class="separator:ab8cd3845b89840da203e1347f68516f2 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ebf165bf54cb04edcf1a9ab9da6b8f4 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a6ebf165bf54cb04edcf1a9ab9da6b8f4"></a>
<a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><b>calc_dihedral_angle</b> (HalfedgeHandle _heh) const</td></tr>
<tr class="separator:a6ebf165bf54cb04edcf1a9ab9da6b8f4 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31902d81a7069fdc6148c713626b53e0 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a31902d81a7069fdc6148c713626b53e0"></a>
<a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><b>calc_dihedral_angle</b> (EdgeHandle _eh) const</td></tr>
<tr class="separator:a31902d81a7069fdc6148c713626b53e0 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a52366a97b3c87ab3473c476f221e22 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a5a52366a97b3c87ab3473c476f221e22"></a>
unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a5a52366a97b3c87ab3473c476f221e22">find_feature_edges</a> (<a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a> _angle_tresh=OpenMesh::deg_to_rad(44.0))</td></tr>
<tr class="memdesc:a5a52366a97b3c87ab3473c476f221e22 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">tags an edge as a feature if its dihedral angle is larger than _angle_tresh returns the number of the found feature edges, requires edge_status property <br /></td></tr>
<tr class="separator:a5a52366a97b3c87ab3473c476f221e22 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0bd67ac6c4c3fa8707191dcf28b7649 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="af0bd67ac6c4c3fa8707191dcf28b7649"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#af0bd67ac6c4c3fa8707191dcf28b7649">split</a> (FaceHandle _fh, const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p)</td></tr>
<tr class="memdesc:af0bd67ac6c4c3fa8707191dcf28b7649 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Face split (= 1-to-n split) <br /></td></tr>
<tr class="separator:af0bd67ac6c4c3fa8707191dcf28b7649 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48712f39ad55c72ab48bf1127b6113bf inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a48712f39ad55c72ab48bf1127b6113bf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>split</b> (FaceHandle _fh, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh)</td></tr>
<tr class="separator:a48712f39ad55c72ab48bf1127b6113bf inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac198e4c43d5baf73b85557eaa48cc722 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ac198e4c43d5baf73b85557eaa48cc722"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>split</b> (EdgeHandle _eh, const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p)</td></tr>
<tr class="separator:ac198e4c43d5baf73b85557eaa48cc722 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf9763c2328f9c70113da70f8fdc60c4 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="adf9763c2328f9c70113da70f8fdc60c4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>split</b> (EdgeHandle _eh, <a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh)</td></tr>
<tr class="separator:adf9763c2328f9c70113da70f8fdc60c4 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a601f21014e50bd5a2243b0e4849c9c14 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a601f21014e50bd5a2243b0e4849c9c14">update_normals</a> ()</td></tr>
<tr class="memdesc:a601f21014e50bd5a2243b0e4849c9c14 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute normals for all primitives.  <a href="a02389.html#a601f21014e50bd5a2243b0e4849c9c14">More...</a><br /></td></tr>
<tr class="separator:a601f21014e50bd5a2243b0e4849c9c14 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7b40ea47b87d63d3f7a4a448b2a5a8d inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ab7b40ea47b87d63d3f7a4a448b2a5a8d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#ab7b40ea47b87d63d3f7a4a448b2a5a8d">update_normal</a> (FaceHandle _fh)</td></tr>
<tr class="memdesc:ab7b40ea47b87d63d3f7a4a448b2a5a8d inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update normal for face _fh. <br /></td></tr>
<tr class="separator:ab7b40ea47b87d63d3f7a4a448b2a5a8d inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5677ec057717fece1bc3c7abbf93cbdf inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a5677ec057717fece1bc3c7abbf93cbdf">update_face_normals</a> ()</td></tr>
<tr class="memdesc:a5677ec057717fece1bc3c7abbf93cbdf inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update normal vectors for all faces.  <a href="a02389.html#a5677ec057717fece1bc3c7abbf93cbdf">More...</a><br /></td></tr>
<tr class="separator:a5677ec057717fece1bc3c7abbf93cbdf inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42bbd1939fb7e02ff36cd0fa9060b107 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a42bbd1939fb7e02ff36cd0fa9060b107">calc_face_normal</a> (const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p0, const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p1, const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_p2) const</td></tr>
<tr class="memdesc:a42bbd1939fb7e02ff36cd0fa9060b107 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate normal vector for face (_p0, _p1, _p2).  <a href="a02389.html#a42bbd1939fb7e02ff36cd0fa9060b107">More...</a><br /></td></tr>
<tr class="separator:a42bbd1939fb7e02ff36cd0fa9060b107 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7ab07fee2430d3e045f271695f806d6 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="af7ab07fee2430d3e045f271695f806d6"></a>
<a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#af7ab07fee2430d3e045f271695f806d6">calc_normal</a> (FaceHandle _fh) const</td></tr>
<tr class="memdesc:af7ab07fee2430d3e045f271695f806d6 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">same as calc_face_normal <br /></td></tr>
<tr class="separator:af7ab07fee2430d3e045f271695f806d6 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06df10e18858333ad0e7cf2ccb8b2109 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a06df10e18858333ad0e7cf2ccb8b2109"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a06df10e18858333ad0e7cf2ccb8b2109">calc_face_centroid</a> (FaceHandle _fh, <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;_pt) const</td></tr>
<tr class="memdesc:a06df10e18858333ad0e7cf2ccb8b2109 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">calculates the average of the vertices defining _fh <br /></td></tr>
<tr class="separator:a06df10e18858333ad0e7cf2ccb8b2109 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a491e64d85f209fa74191fd96fe8f45cd inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a491e64d85f209fa74191fd96fe8f45cd"></a>
<a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a491e64d85f209fa74191fd96fe8f45cd">calc_face_centroid</a> (FaceHandle _fh) const</td></tr>
<tr class="memdesc:a491e64d85f209fa74191fd96fe8f45cd inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes and returns the average of the vertices defining _fh. <br /></td></tr>
<tr class="separator:a491e64d85f209fa74191fd96fe8f45cd inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65fcc6edd32701b766ce4987f4e74e46 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a65fcc6edd32701b766ce4987f4e74e46"></a>
<a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a65fcc6edd32701b766ce4987f4e74e46">calc_centroid</a> (FaceHandle _fh) const</td></tr>
<tr class="memdesc:a65fcc6edd32701b766ce4987f4e74e46 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes and returns the average of the vertices defining _fh (same as calc_face_centroid) <br /></td></tr>
<tr class="separator:a65fcc6edd32701b766ce4987f4e74e46 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28a3023c9db2a0885d340c9d2f8e8172 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a28a3023c9db2a0885d340c9d2f8e8172"></a>
<a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a28a3023c9db2a0885d340c9d2f8e8172">calc_centroid</a> (EdgeHandle _eh) const</td></tr>
<tr class="memdesc:a28a3023c9db2a0885d340c9d2f8e8172 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes and returns the average of the vertices defining _eh (same as calc_edge_midpoint) <br /></td></tr>
<tr class="separator:a28a3023c9db2a0885d340c9d2f8e8172 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c743a16114e50e527a3046746a00146 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a7c743a16114e50e527a3046746a00146"></a>
<a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a7c743a16114e50e527a3046746a00146">calc_centroid</a> (HalfedgeHandle _heh) const</td></tr>
<tr class="memdesc:a7c743a16114e50e527a3046746a00146 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes and returns the average of the vertices defining _heh (same as calc_edge_midpoint for edge of halfedge) <br /></td></tr>
<tr class="separator:a7c743a16114e50e527a3046746a00146 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a670143b09689e9e53fcdb9a37f7a434d inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a670143b09689e9e53fcdb9a37f7a434d"></a>
<a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a670143b09689e9e53fcdb9a37f7a434d">calc_centroid</a> (<a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh) const</td></tr>
<tr class="memdesc:a670143b09689e9e53fcdb9a37f7a434d inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the point of _vh. <br /></td></tr>
<tr class="separator:a670143b09689e9e53fcdb9a37f7a434d inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65c2ffb9241f8228db2dc7b63fc97f02 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a65c2ffb9241f8228db2dc7b63fc97f02"></a>
<a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a65c2ffb9241f8228db2dc7b63fc97f02">calc_centroid</a> (<a class="el" href="a02257.html">MeshHandle</a> _mh) const</td></tr>
<tr class="memdesc:a65c2ffb9241f8228db2dc7b63fc97f02 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes and returns the average of the vertices defining the mesh. <br /></td></tr>
<tr class="separator:a65c2ffb9241f8228db2dc7b63fc97f02 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac98934e64388f212e03a66b39d0ee137 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ac98934e64388f212e03a66b39d0ee137"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#ac98934e64388f212e03a66b39d0ee137">update_normal</a> (HalfedgeHandle _heh, const double _feature_angle=0.8)</td></tr>
<tr class="memdesc:ac98934e64388f212e03a66b39d0ee137 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update normal for halfedge _heh. <br /></td></tr>
<tr class="separator:ac98934e64388f212e03a66b39d0ee137 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58045f9fafc6239077c747afdd8f852d inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a58045f9fafc6239077c747afdd8f852d">update_halfedge_normals</a> (const double _feature_angle=0.8)</td></tr>
<tr class="memdesc:a58045f9fafc6239077c747afdd8f852d inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update normal vectors for all halfedges.  <a href="a02389.html#a58045f9fafc6239077c747afdd8f852d">More...</a><br /></td></tr>
<tr class="separator:a58045f9fafc6239077c747afdd8f852d inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c3bb9993fc45ec3ca26d677017f32f3 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a5c3bb9993fc45ec3ca26d677017f32f3">calc_halfedge_normal</a> (HalfedgeHandle _heh, const double _feature_angle=0.8) const</td></tr>
<tr class="memdesc:a5c3bb9993fc45ec3ca26d677017f32f3 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate halfedge normal for one specific halfedge.  <a href="a02389.html#a5c3bb9993fc45ec3ca26d677017f32f3">More...</a><br /></td></tr>
<tr class="separator:a5c3bb9993fc45ec3ca26d677017f32f3 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8edf0652637619746808a8508a3203a4 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a8edf0652637619746808a8508a3203a4"></a>
<a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a8edf0652637619746808a8508a3203a4">calc_normal</a> (HalfedgeHandle, const double _feature_angle=0.8) const</td></tr>
<tr class="memdesc:a8edf0652637619746808a8508a3203a4 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">same as calc_halfedge_normal <br /></td></tr>
<tr class="separator:a8edf0652637619746808a8508a3203a4 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98e626927ab0d71cef18df58be2e212e inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a98e626927ab0d71cef18df58be2e212e">is_estimated_feature_edge</a> (HalfedgeHandle _heh, const double _feature_angle) const</td></tr>
<tr class="memdesc:a98e626927ab0d71cef18df58be2e212e inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">identifies feature edges w.r.t.  <a href="a02389.html#a98e626927ab0d71cef18df58be2e212e">More...</a><br /></td></tr>
<tr class="separator:a98e626927ab0d71cef18df58be2e212e inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f33200ba959d2d68e62d0cdf0afe322 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a8f33200ba959d2d68e62d0cdf0afe322"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a8f33200ba959d2d68e62d0cdf0afe322">update_normal</a> (<a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh)</td></tr>
<tr class="memdesc:a8f33200ba959d2d68e62d0cdf0afe322 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update normal for vertex _vh. <br /></td></tr>
<tr class="separator:a8f33200ba959d2d68e62d0cdf0afe322 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbf60ccc42cb484ba2911bda8277551c inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#acbf60ccc42cb484ba2911bda8277551c">update_vertex_normals</a> ()</td></tr>
<tr class="memdesc:acbf60ccc42cb484ba2911bda8277551c inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update normal vectors for all vertices.  <a href="a02389.html#acbf60ccc42cb484ba2911bda8277551c">More...</a><br /></td></tr>
<tr class="separator:acbf60ccc42cb484ba2911bda8277551c inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff1c0021e05ecba42d7b960add51757c inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#aff1c0021e05ecba42d7b960add51757c">calc_vertex_normal</a> (<a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh) const</td></tr>
<tr class="memdesc:aff1c0021e05ecba42d7b960add51757c inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate vertex normal for one specific vertex.  <a href="a02389.html#aff1c0021e05ecba42d7b960add51757c">More...</a><br /></td></tr>
<tr class="separator:aff1c0021e05ecba42d7b960add51757c inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a274a5ec813ccbd19c775740df6bae995 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a274a5ec813ccbd19c775740df6bae995">calc_vertex_normal_fast</a> (<a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh, <a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a> &amp;_n) const</td></tr>
<tr class="memdesc:a274a5ec813ccbd19c775740df6bae995 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Different methods for calculation of the normal at _vh:  <a href="a02389.html#a274a5ec813ccbd19c775740df6bae995">More...</a><br /></td></tr>
<tr class="separator:a274a5ec813ccbd19c775740df6bae995 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2873b741c59a9d3f3a7eb61f996017e0 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a2873b741c59a9d3f3a7eb61f996017e0">calc_vertex_normal_correct</a> (<a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh, <a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a> &amp;_n) const</td></tr>
<tr class="memdesc:a2873b741c59a9d3f3a7eb61f996017e0 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute normals for all primitives.  <a href="a02389.html#a2873b741c59a9d3f3a7eb61f996017e0">More...</a><br /></td></tr>
<tr class="separator:a2873b741c59a9d3f3a7eb61f996017e0 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac18dd8b978ee432fae67524b3a181c14 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#ac18dd8b978ee432fae67524b3a181c14">calc_vertex_normal_loop</a> (<a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh, <a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a> &amp;_n) const</td></tr>
<tr class="memdesc:ac18dd8b978ee432fae67524b3a181c14 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute normals for all primitives.  <a href="a02389.html#ac18dd8b978ee432fae67524b3a181c14">More...</a><br /></td></tr>
<tr class="separator:ac18dd8b978ee432fae67524b3a181c14 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7d14515e2de903d10c50ae23c83e963 inherit pub_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="ae7d14515e2de903d10c50ae23c83e963"></a>
<a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#ae7d14515e2de903d10c50ae23c83e963">calc_normal</a> (<a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a> _vh) const</td></tr>
<tr class="memdesc:ae7d14515e2de903d10c50ae23c83e963 inherit pub_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">same as calc_vertex_normal_correct <br /></td></tr>
<tr class="separator:ae7d14515e2de903d10c50ae23c83e963 inherit pub_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a155cae71466c675f4f06826026b12af2"><td class="memItemLeft" align="right" valign="top"><a id="a155cae71466c675f4f06826026b12af2"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>IsPolyMesh</b> = 0
 }<tr class="memdesc:a155cae71466c675f4f06826026b12af2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether this is a <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a> (This function does not check the per face vertex count! It only checks if the datatype is <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a>) <br /></td></tr>
</td></tr>
<tr class="separator:a155cae71466c675f4f06826026b12af2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc532cd84b727edf717a52971ab02a38"><td class="memItemLeft" align="right" valign="top"><a id="abc532cd84b727edf717a52971ab02a38"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <b>IsTriMesh</b> = 1
 }<tr class="memdesc:abc532cd84b727edf717a52971ab02a38"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether this is a <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a> (This function does not check the per face vertex count! It only checks if the datatype is <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a>) <br /></td></tr>
</td></tr>
<tr class="separator:abc532cd84b727edf717a52971ab02a38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abedd75b99c3aac3ba5765aa5ef3e4a44"><td class="memItemLeft" align="right" valign="top"><a id="abedd75b99c3aac3ba5765aa5ef3e4a44"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#abedd75b99c3aac3ba5765aa5ef3e4a44">ConnectivityTag</a> = <a class="el" href="a02465.html">TriConnectivityTag</a></td></tr>
<tr class="memdesc:abedd75b99c3aac3ba5765aa5ef3e4a44"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether this is a <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a> (This function does not check the per face vertex count! It only checks if the datatype is <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a>) <br /></td></tr>
<tr class="separator:abedd75b99c3aac3ba5765aa5ef3e4a44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cc64ed78ada2d6a6726a1f22e757e81"><td class="memItemLeft" align="right" valign="top"><a id="a5cc64ed78ada2d6a6726a1f22e757e81"></a>
static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a5cc64ed78ada2d6a6726a1f22e757e81">is_polymesh</a> ()</td></tr>
<tr class="memdesc:a5cc64ed78ada2d6a6726a1f22e757e81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether this is a <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a> (This function does not check the per face vertex count! It only checks if the datatype is <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a>) <br /></td></tr>
<tr class="separator:a5cc64ed78ada2d6a6726a1f22e757e81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cf1765f81688edc7f12619538da9ffc"><td class="memItemLeft" align="right" valign="top"><a id="a3cf1765f81688edc7f12619538da9ffc"></a>
static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02489.html#a3cf1765f81688edc7f12619538da9ffc">is_trimesh</a> ()</td></tr>
<tr class="memdesc:a3cf1765f81688edc7f12619538da9ffc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether this is a <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a> (This function does not check the per face vertex count! It only checks if the datatype is <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a>) <br /></td></tr>
<tr class="separator:a3cf1765f81688edc7f12619538da9ffc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_a02389"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_a02389')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="a02389.html">OpenMesh::PolyMeshT&lt; Kernel &gt;</a></td></tr>
<tr class="memitem:a33d15d135e70be103b2d1c96e15b378c inherit pub_static_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a33d15d135e70be103b2d1c96e15b378c"></a>
static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a33d15d135e70be103b2d1c96e15b378c">is_polymesh</a> ()</td></tr>
<tr class="memdesc:a33d15d135e70be103b2d1c96e15b378c inherit pub_static_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether this is a <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a> (This function does not check the per face vertex count! It only checks if the datatype is <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a>) <br /></td></tr>
<tr class="separator:a33d15d135e70be103b2d1c96e15b378c inherit pub_static_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a928ad49d12f4429692dbb6be5d8ef393 inherit pub_static_methods_a02389"><td class="memItemLeft" align="right" valign="top"><a id="a928ad49d12f4429692dbb6be5d8ef393"></a>
static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a02389.html#a928ad49d12f4429692dbb6be5d8ef393">is_trimesh</a> ()</td></tr>
<tr class="memdesc:a928ad49d12f4429692dbb6be5d8ef393 inherit pub_static_methods_a02389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether this is a <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a> (This function does not check the per face vertex count! It only checks if the datatype is <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> or <a class="el" href="a02489.html" title="Base type for a triangle mesh. ">TriMeshT</a>) <br /></td></tr>
<tr class="separator:a928ad49d12f4429692dbb6be5d8ef393 inherit pub_static_methods_a02389"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class Kernel&gt;<br />
class OpenMesh::TriMeshT&lt; Kernel &gt;</h3>

<p>Base type for a triangle mesh. </p>
<p>Base type for a triangle mesh, parameterized by a mesh kernel. The mesh inherits all methods from the kernel class and the more general polygonal mesh <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a>. Therefore it provides the same types for items, handles, iterators and so on.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">Kernel</td><td>template argument for the mesh kernel </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>You should use the predefined mesh-kernel combinations in <a class="el" href="a01230.html">Predefined Mesh Types</a> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a04324.html">Specifying your MyMesh</a> </dd>
<dd>
<a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">OpenMesh::PolyMeshT</a> </dd></dl>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a68b11fc780cd30e73380843bc6769ed7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68b11fc780cd30e73380843bc6769ed7">&#9670;&nbsp;</a></span>calc_face_area()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02389.html#a15372f27edf521d8e9028e2abccae342">Scalar</a> <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::calc_face_area </td>
          <td>(</td>
          <td class="paramtype">FaceHandle&#160;</td>
          <td class="paramname"><em>_fh</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calculates the area of a face. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_fh</td><td>Handle of the face to calculate the area of </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a34d9ca17136124593dcc494cfaccdfe5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a34d9ca17136124593dcc494cfaccdfe5">&#9670;&nbsp;</a></span>calc_face_normal()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02489.html">TriMeshT</a>&lt; Kernel &gt;::<a class="el" href="a02389.html#a3570fd132d1ac589b380485cf59c9e0b">Normal</a> <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::calc_face_normal </td>
          <td>(</td>
          <td class="paramtype">FaceHandle&#160;</td>
          <td class="paramname"><em>_fh</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Calculate normal vector for face _fh (specialized for TriMesh). </p>

<p>Reimplemented from <a class="el" href="a02389.html#a76730c9a65bfd6cf23972baa191a40cd">OpenMesh::PolyMeshT&lt; Kernel &gt;</a>.</p>

</div>
</div>
<a id="a46de9085ad6cebce97204d3263c2fc02"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46de9085ad6cebce97204d3263c2fc02">&#9670;&nbsp;</a></span>split() <span class="overload">[1/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02405.html">SmartVertexHandle</a> <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::split </td>
          <td>(</td>
          <td class="paramtype">EdgeHandle&#160;</td>
          <td class="paramname"><em>_eh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;&#160;</td>
          <td class="paramname"><em>_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Edge split (= 2-to-4 split) </p>
<p>The properties of the new edges will be undefined!</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_eh</td><td>Edge handle that should be splitted </td></tr>
    <tr><td class="paramname">_p</td><td>New point position that will be inserted at the edge </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vertex handle of the newly added vertex </dd></dl>

</div>
</div>
<a id="a00a743cc15f3ff35e41c98090e0f91c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00a743cc15f3ff35e41c98090e0f91c8">&#9670;&nbsp;</a></span>split() <span class="overload">[2/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::split </td>
          <td>(</td>
          <td class="paramtype">EdgeHandle&#160;</td>
          <td class="paramname"><em>_eh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a>&#160;</td>
          <td class="paramname"><em>_vh</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Edge split (= 2-to-4 split) </p>
<p>The properties of the new edges will be undefined!</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_eh</td><td>Edge handle that should be splitted </td></tr>
    <tr><td class="paramname">_vh</td><td>Vertex handle that will be inserted at the edge </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a6eb3942a6c87da48e0691d669e764edf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6eb3942a6c87da48e0691d669e764edf">&#9670;&nbsp;</a></span>split() <span class="overload">[3/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02405.html">SmartVertexHandle</a> <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::split </td>
          <td>(</td>
          <td class="paramtype">FaceHandle&#160;</td>
          <td class="paramname"><em>_fh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;&#160;</td>
          <td class="paramname"><em>_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Face split (= 1-to-3 split, calls corresponding <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> function). </p>
<p>The properties of the new faces will be undefined!</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_fh</td><td>Face handle that should be splitted </td></tr>
    <tr><td class="paramname">_p</td><td>New point position that will be inserted in the face</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vertex handle of the new vertex </dd></dl>

</div>
</div>
<a id="a08fd303acc36c2fc4e6bbb1e96b49dd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08fd303acc36c2fc4e6bbb1e96b49dd7">&#9670;&nbsp;</a></span>split() <span class="overload">[4/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::split </td>
          <td>(</td>
          <td class="paramtype">FaceHandle&#160;</td>
          <td class="paramname"><em>_fh</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Face split (= 1-to-4) split, splits edges at midpoints and adds 4 new faces in the interior). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_fh</td><td>Face handle that should be splitted </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a1d3163398fc453736b59e8a3dacf7e45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d3163398fc453736b59e8a3dacf7e45">&#9670;&nbsp;</a></span>split() <span class="overload">[5/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::split </td>
          <td>(</td>
          <td class="paramtype">FaceHandle&#160;</td>
          <td class="paramname"><em>_fh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a>&#160;</td>
          <td class="paramname"><em>_vh</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Face split (= 1-to-3 split, calls corresponding <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> function). </p>
<p>The properties of the new faces will be undefined!</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_fh</td><td>Face handle that should be splitted </td></tr>
    <tr><td class="paramname">_vh</td><td>Vertex handle that will be inserted at the face </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af27eab7f97150e60d70e43a96ba1e6a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af27eab7f97150e60d70e43a96ba1e6a4">&#9670;&nbsp;</a></span>split_copy() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02405.html">SmartVertexHandle</a> <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::split_copy </td>
          <td>(</td>
          <td class="paramtype">EdgeHandle&#160;</td>
          <td class="paramname"><em>_eh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;&#160;</td>
          <td class="paramname"><em>_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Edge split (= 2-to-4 split) </p>
<p>The properties of the new edges will be adjusted to the properties of the original edge</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_eh</td><td>Edge handle that should be splitted </td></tr>
    <tr><td class="paramname">_p</td><td>New point position that will be inserted at the edge </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vertex handle of the newly added vertex </dd></dl>

</div>
</div>
<a id="ae1dcb76ca7b18678552bb0b65dff3a2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae1dcb76ca7b18678552bb0b65dff3a2c">&#9670;&nbsp;</a></span>split_copy() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::split_copy </td>
          <td>(</td>
          <td class="paramtype">EdgeHandle&#160;</td>
          <td class="paramname"><em>_eh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a>&#160;</td>
          <td class="paramname"><em>_vh</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Edge split (= 2-to-4 split) </p>
<p>The properties of the new edges will be adjusted to the properties of the original edge</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_eh</td><td>Edge handle that should be splitted </td></tr>
    <tr><td class="paramname">_vh</td><td>Vertex handle that will be inserted at the edge </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab43c61825216c530da6959a1a027a9e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab43c61825216c530da6959a1a027a9e1">&#9670;&nbsp;</a></span>split_copy() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a02405.html">SmartVertexHandle</a> <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::split_copy </td>
          <td>(</td>
          <td class="paramtype">FaceHandle&#160;</td>
          <td class="paramname"><em>_fh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a> &amp;&#160;</td>
          <td class="paramname"><em>_p</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Face split (= 1-to-3 split, calls corresponding <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> function). </p>
<p>The properties of the new faces will be adjusted to the properties of the original face</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_fh</td><td>Face handle that should be splitted </td></tr>
    <tr><td class="paramname">_p</td><td>New point position that will be inserted in the face</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Vertex handle of the new vertex </dd></dl>

</div>
</div>
<a id="aa2b78682dc013e4c8480a3cab28bb766"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2b78682dc013e4c8480a3cab28bb766">&#9670;&nbsp;</a></span>split_copy() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::split_copy </td>
          <td>(</td>
          <td class="paramtype">FaceHandle&#160;</td>
          <td class="paramname"><em>_fh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a>&#160;</td>
          <td class="paramname"><em>_vh</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Face split (= 1-to-3 split, calls corresponding <a class="el" href="a02389.html" title="Base type for a polygonal mesh. ">PolyMeshT</a> function). </p>
<p>The properties of the new faces will be adjusted to the properties of the original face</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_fh</td><td>Face handle that should be splitted </td></tr>
    <tr><td class="paramname">_vh</td><td>Vertex handle that will be inserted at the face </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4868b772cb7a9d7bb8d94854dfb82868"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4868b772cb7a9d7bb8d94854dfb82868">&#9670;&nbsp;</a></span>vertex_split() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">HalfedgeHandle <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::vertex_split </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a02389.html#aed10fb4dfb536b53a5e20c8f2442eadf">Point</a>&#160;</td>
          <td class="paramname"><em>_v0_point</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a>&#160;</td>
          <td class="paramname"><em>_v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a>&#160;</td>
          <td class="paramname"><em>_vl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a>&#160;</td>
          <td class="paramname"><em>_vr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Vertex Split: inverse operation to collapse(). </p>
<p>Insert the new vertex at position v0. The vertex will be added as the inverse of the edge collapse. The faces above the split will be correctly attached to the two new edges</p>
<pre></pre><pre>Before:
v_l     v0     v_r
 x      x      x
  \           /
   \         /
    \       /
     \     /
      \   /
       \ /
        x
        v1</pre><pre>After:
v_l    v0      v_r
 x------x------x
  \     |     /
   \    |    /
    \   |   /
     \  |  /
      \ | /
       |/
        x
        v1</pre><pre></pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_v0_point</td><td>Point position for the new point </td></tr>
    <tr><td class="paramname">_v1</td><td>Vertex that will be split </td></tr>
    <tr><td class="paramname">_vl</td><td>Left vertex handle </td></tr>
    <tr><td class="paramname">_vr</td><td>Right vertex handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Newly inserted halfedge </dd></dl>

</div>
</div>
<a id="ac58e0af86ecd0bbc5e821ecd8c8beaff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac58e0af86ecd0bbc5e821ecd8c8beaff">&#9670;&nbsp;</a></span>vertex_split() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class Kernel&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">HalfedgeHandle <a class="el" href="a02489.html">OpenMesh::TriMeshT</a>&lt; Kernel &gt;::vertex_split </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a>&#160;</td>
          <td class="paramname"><em>_v0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a>&#160;</td>
          <td class="paramname"><em>_v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a>&#160;</td>
          <td class="paramname"><em>_vl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a02389.html#a0fc18e13d70825938274e3faf7b55e01">VertexHandle</a>&#160;</td>
          <td class="paramname"><em>_vr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Vertex Split: inverse operation to collapse(). </p>
<p>Insert the new vertex at position v0. The vertex will be added as the inverse of the edge collapse. The faces above the split will be correctly attached to the two new edges</p>
<pre></pre><pre>Before:
v_l     v0     v_r
 x      x      x
  \           /
   \         /
    \       /
     \     /
      \   /
       \ /
        x
        v1</pre><pre>After:
v_l    v0      v_r
 x------x------x
  \     |     /
   \    |    /
    \   |   /
     \  |  /
      \ | /
       |/
        x
        v1</pre><pre></pre><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_v0</td><td>Vertex handle for the newly inserted point (Input has to be unconnected!) </td></tr>
    <tr><td class="paramname">_v1</td><td>Vertex that will be split </td></tr>
    <tr><td class="paramname">_vl</td><td>Left vertex handle </td></tr>
    <tr><td class="paramname">_vr</td><td>Right vertex handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Newly inserted halfedge </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>OpenMesh/Core/Mesh/<a class="el" href="a00419_source.html">TriMeshT.hh</a></li>
<li>OpenMesh/Core/Mesh/<a class="el" href="a00422_source.html">TriMeshT_impl.hh</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<hr>
<address>
<small>
<a href="http://www.rwth-graphics.de" style="text-decoration:none;">
</a>
Project <b>OpenMesh</b>, 
&copy;&nbsp; Computer Graphics Group, RWTH Aachen.
Documentation generated using 
<a class="el" href="http://www.doxygen.org/index.html">
<b>doxygen</b>
</a>.
</small>
</address>
</body>
</html>
